Location: BondGraph Basic @ 994dbbb88a76 / BG Tutorial Fluid Systems / pv_type.cellml

Author:
Soroush <ssaf006@aucklanduni.ac.nz>
Date:
2021-04-08 15:18:19+12:00
Desc:
modified svg
Permanent Source URI:
https://models.fieldml.org/workspace/43b/rawfile/994dbbb88a761fe3a62bfaf8352da94103650bb2/BG Tutorial Fluid Systems/pv_type.cellml

<?xml version='1.0'?>
<model name="pv_type" xmlns="http://www.cellml.org/cellml/1.1#" xmlns:cellml="http://www.cellml.org/cellml/1.1#">
    <units name="J_s_per_m3">
        <unit units="joule"/>
        <unit units="second"/>
        <unit exponent="-3" units="metre"/>
    </units>
    <units name="per_m">
        <unit exponent="-1" units="metre"/>
    </units>
    <units name="m6_per_J">
        <unit exponent="6" units="metre"/>
        <unit exponent="-1" units="joule"/>
    </units>
    <units name="m3_per_s">
        <unit exponent="3" units="metre"/>
        <unit exponent="-1" units="second"/>
    </units>
    <units name="J_per_m3">
        <unit units="joule"/>
        <unit exponent="-3" units="metre"/>
    </units>
    <units name="J_s_per_m6">
        <unit units="joule"/>
        <unit units="second"/>
        <unit exponent="-6" units="metre"/>
    </units>
    <units name="J_s2_per_m6">
        <unit units="joule"/>
        <unit exponent="2" units="second"/>
        <unit exponent="-6" units="metre"/>
    </units>
    <units name="J_s2_per_m5">
        <unit units="joule"/>
        <unit exponent="2" units="second"/>
        <unit exponent="-5" units="metre"/>
    </units>
    <component name="pv_type">
        <variable name="t" units="second"/>
        <!-- Constitutive Parameters-->
        <variable initial_value="0.004" name="mu" units="J_s_per_m3"/>
        <variable initial_value="1050" name="rho" units="J_s2_per_m5"/>
        <variable initial_value="0.4e+6" name="E" units="J_per_m3"/>
        <variable initial_value="0.2" name="l" units="metre"/>
        <variable name="h" public_interface="out" units="metre"/>
        <variable initial_value="0.002" name="r" units="metre"/>
        <variable name="I" public_interface="out" units="J_s2_per_m6"/>
        <variable name="C" public_interface="out" units="m6_per_J"/>
        <variable name="R" public_interface="out" units="J_s_per_m6"/>
        <variable name="R_v" public_interface="out" units="J_s_per_m6"/>
        <variable initial_value="0.2802" name="a" units="dimensionless"/>
        <variable initial_value="-505.3" name="b" units="per_m"/>
        <variable initial_value="0.1324" name="c" units="dimensionless"/>
        <variable initial_value="-11.14" name="d" units="per_m"/>
        <!-- State Variables-->
        <variable initial_value="1.0" name="u_in" units="J_per_m3"/>
        <variable initial_value="0.0" name="v" public_interface="out" units="m3_per_s"/>
        <variable name="u" public_interface="out" units="J_per_m3"/>
        <variable initial_value="0.0" name="u_C" public_interface="out" units="J_per_m3"/>
        <variable initial_value="1.0" name="v_out" units="m3_per_s"/>
        <!-- Constitutive Relations-->
        <math xmlns="http://www.w3.org/1998/Math/MathML">
            <apply>
                <eq/>
                <ci>h</ci>
                <apply>
                    <times/>
                    <ci>r</ci>
                    <apply>
                        <plus/>
                        <apply>
                            <times/>
                            <ci>a</ci>
                            <apply>
                                <exp/>
                                <apply>
                                    <times/>
                                    <ci>b</ci>
                                    <ci>r</ci>
                                </apply>
                            </apply>
                        </apply>
                        <apply>
                            <times/>
                            <ci>c</ci>
                            <apply>
                                <exp/>
                                <apply>
                                    <times/>
                                    <ci>d</ci>
                                    <ci>r</ci>
                                </apply>
                            </apply>
                        </apply>
                    </apply>
                </apply>
            </apply>
            <apply>
                <eq/>
                <ci>I</ci>
                <apply>
                    <divide/>
                    <apply>
                        <times/>
                        <ci>rho</ci>
                        <ci>l</ci>
                    </apply>
                    <apply>
                        <times/>
                        <pi/>
                        <apply>
                            <power/>
                            <ci>r</ci>
                            <cn cellml:units="dimensionless">2</cn>
                        </apply>
                    </apply>
                </apply>
            </apply>
            <apply>
                <eq/>
                <ci>C</ci>
                <apply>
                    <divide/>
                    <apply>
                        <times/>
                        <cn cellml:units="dimensionless">2</cn>
                        <pi/>
                        <apply>
                            <power/>
                            <ci>r</ci>
                            <cn cellml:units="dimensionless">3</cn>
                        </apply>
                        <ci>l</ci>
                    </apply>
                    <apply>
                        <times/>
                        <ci>E</ci>
                        <ci>h</ci>
                    </apply>
                </apply>
            </apply>
            <apply>
                <eq/>
                <ci>R</ci>
                <apply>
                    <divide/>
                    <apply>
                        <times/>
                        <cn cellml:units="dimensionless">8</cn>
                        <ci>mu</ci>
                        <ci>l</ci>
                    </apply>
                    <apply>
                        <times/>
                        <pi/>
                        <apply>
                            <power/>
                            <ci>r</ci>
                            <cn cellml:units="dimensionless">4</cn>
                        </apply>
                    </apply>
                </apply>
            </apply>
            <apply>
                <eq/>
                <ci>R_v</ci>
                <apply>
                    <divide/>
                    <cn cellml:units="second">0.01</cn>
                    <ci>C</ci>
                </apply>
            </apply>
            <!-- Conservation Laws-->
            <apply>
                <eq/>
                <apply>
                    <diff/>
                    <bvar>
                        <ci>t</ci>
                    </bvar>
                    <ci>v</ci>
                </apply>
                <apply>
                    <divide/>
                    <apply>
                        <minus/>
                        <apply>
                            <minus/>
                            <ci>u_in</ci>
                            <ci>u</ci>
                        </apply>
                        <apply>
                            <times/>
                            <ci>R</ci>
                            <ci>v</ci>
                        </apply>
                    </apply>
                    <ci>I</ci>
                </apply>
            </apply>
            <apply>
                <eq/>
                <apply>
                    <diff/>
                    <bvar>
                        <ci>t</ci>
                    </bvar>
                    <ci>u_C</ci>
                </apply>
                <apply>
                    <divide/>
                    <apply>
                        <minus/>
                        <ci>v</ci>
                        <ci>v_out</ci>
                    </apply>
                    <ci>C</ci>
                </apply>
            </apply>
            <apply>
                <eq/>
                <ci>u</ci>
                <apply>
                    <plus/>
                    <ci>u_C</ci>
                    <apply>
                        <times/>
                        <ci>R_v</ci>
                        <apply>
                            <minus/>
                            <ci>v</ci>
                            <ci>v_out</ci>
                        </apply>
                    </apply>
                </apply>
            </apply>
        </math>
    </component>
</model>